VSCodeで自作モジュールのimportエラーを解消してみた
DA事業本部の横山です。
Visual Studio CodeでPythonの開発を行う際に、初心者がハマりやすいimportエラーの解消方法について書いていきます。
結論
先に結論を書いておくと、settings.json
にpython.analysis.extraPaths
に読み込みたいパスを追加することで解決できます。
確認環境
- Python 3.8.2
- VSCode 1.50.1
- VSCodeのPython拡張機能
現象確認
以下のようなディレクトリ構成でコードを書いているとします。
$ tree . ├── main.py : importする側 ├── same_dir.py : importされる側 └── sample └── other_dir.py : importされる側
import same_dir from sample import other_dir same_dir.same_dir() other_dir.other_dir()
def same_dir(): print('same_dir')
def other_dir(): print('other_dir')
この時、main.py
のimport文で以下のようなエラーになるはずです。
ちなみに実行してみてもエラーは発生しません。
$ python3 main.py same_dir other_dir
これは、Pythonの実行時の探索パスとVSCodeが探索するパスが異なるためです。 問題なく実行できるとしてもこのままでは、コードジャンプはできませんし、AutoCompleteもできないため開発効率が落ちてしまいますよね?
VSCodeの設定を追加して、importエラーを解消しましょう。
VSCodeの設定を変更する
VSCodeのPython拡張機能には、探索対象のパスを追加するオプション(python.analysis.extraPaths
)が存在するため、settings.json
内で任意のパスを追加しましょう。
今回の例でいうと、以下のような設定を追加します。
"python.analysis.extraPaths": [ "/home/yokoyama/target/path", ],
正しいパスが設定できたら、先ほどのimportエラーが解消されているはずです。 これで、コードジャンプやAutoCompleteが効くようになります。
プロジェクトで自作しているモジュールが全く違うディレクトリに存在する場合でも、この設定を行うことでコードジャンプやAutoCompleteが行えるようになるので困っている方は試してみてください。
最後に
今回は、VSCodeで自作モジュールのimportエラーを解消する方法を紹介しました。
VSCodeを使い始めた初心者の方はIDE固有の設定などでつまづいてしまうことがあるかもしれませんが、使いこなして快適な開発環境を手に入れましょう。
以上になります。この記事がどなたかの助けになれば幸いです。